﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using AdminCondominio.Persistencia;
using AdminCondominio.Dominio;

namespace AdminCondominio.Pruebas
{
    [TestFixture]
    public class TesAreaComun
    {
        private AreaComunDAO _AreaComunDAO;

        [Test]
        public void TestCrear()
        {
            _AreaComunDAO = new AreaComunDAO();
            AreaComun _AreaComun = new AreaComun();
            _AreaComun.TipoAreaComun = new TipoAreaComun();
            _AreaComun.NuPersonas = 3;
            _AreaComun.Area = (decimal)15.00;
            _AreaComun.TipoAreaComun.CoTipoAreaComun = 1;
            _AreaComun.Ubicacion = "bbb";
            _AreaComun.Estado = "Activo";
            int filas = 0;
            Assert.DoesNotThrow(delegate
            {
                filas = _AreaComunDAO.InserAreaComun(_AreaComun);
            });

            //Implementar las validaciones
            Assert.AreEqual(filas, 1);
        }

        [Test]
        public void OptenerAreaComun()
        {
            _AreaComunDAO = new AreaComunDAO();
            AreaComun _AreaComun = new AreaComun();
            _AreaComun.CoAreaComun = 21;

            Assert.DoesNotThrow(delegate
            {
                _AreaComun = _AreaComunDAO.OptenerAreaComun(_AreaComun);
            });

            Assert.NotNull(_AreaComun);    
        }

        [Test]
        public void ListAreaComun()
        {
            _AreaComunDAO = new AreaComunDAO();
            AreaComun _AreaComun = new AreaComun();
            _AreaComun.TipoAreaComun = new TipoAreaComun();   
            _AreaComun.TipoAreaComun.CoTipoAreaComun = 9;

            List<AreaComun> _ListAreaComun = new List<AreaComun>();  

            Assert.DoesNotThrow(delegate
            {
                _ListAreaComun = _AreaComunDAO.ListAreaComun();
            });

            Assert.NotNull(_ListAreaComun);
            Assert.GreaterOrEqual(_ListAreaComun.Count, 1);    
        }

        [Test]
        public void TestUpdate()
        {
            _AreaComunDAO = new AreaComunDAO();
            AreaComun _AreaComun = new AreaComun();
            _AreaComun.TipoAreaComun = new TipoAreaComun();
            _AreaComun.CoAreaComun = 21;  
            _AreaComun.NuPersonas = 15;
            _AreaComun.Area = (decimal)15.00;
            _AreaComun.TipoAreaComun.CoTipoAreaComun = 9;
            _AreaComun.Ubicacion = "bbb";
            _AreaComun.Estado = "Activo";
            int filas = 0;
            Assert.DoesNotThrow(delegate
            {
                filas = _AreaComunDAO.UpdateAreaComun(_AreaComun);
            });

            //Implementar las validaciones
            Assert.AreEqual(filas, 1);
        }

        [Test]
        public void TestDelete()
        {
            _AreaComunDAO = new AreaComunDAO();
            AreaComun _AreaComun = new AreaComun();
            _AreaComun.CoAreaComun = 65;
            int filas = 0;
            Assert.DoesNotThrow(delegate
            {
                filas = _AreaComunDAO.DeleteAreaComun(_AreaComun);
            });

            Assert.AreEqual(filas, 1);

            Assert.DoesNotThrow(delegate
            {
                _AreaComun = _AreaComunDAO.OptenerAreaComun(_AreaComun);    
            });

            Assert.IsNull(_AreaComun);
        }
    }
}